﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace base01
{
    //  测试函数重载
    //    在同一个类中，方法名相同，参数类型或个数不同，即构成了方法的重载。

    //为什么要使用重载？

    //（1）对创建者来说，不用为方法取名而绞尽脑汁。

    //（2）对使用者来说，不用为记方法名而浪费精力。

    //例如：在员工类中，有一个计算工资的方法，对于A类人员没有项目提成，对于B类人员有项目提成。

    //A类人员工资 = 底薪 + 工龄* 工龄工资

    //B类人员工资 = 底薪+工龄* 工龄工资 + 项目提成（项目总金额* 0.1）

    public class base03
    {
        public string EmpName { get; set; }
        //底薪 + 工龄*工龄工资(没有项目回款的时候)
        /// <summary>
        /// 没有项目提成的算法
        /// </summary>
        /// <param name="baseSalary">底薪</param>
        /// <param name="year">工作年限</param>
        /// <param name="yearMoney">工龄工资</param>
        /// <returns></returns>
        public double GetAllSalary(double baseSalary, int year, double yearMoney)
        {
            return baseSalary + year * yearMoney;
        }

        //底薪 + 工龄*工龄工资 + 项目提成（项目总金额  *0.1）（有项目回款的时候）
        /// <summary>
        /// 有项目提成的算法
        /// </summary>
        /// <param name="baseSalary">底薪</param>
        /// <param name="year">工作年限</param>
        /// <param name="yearMoney">工龄工资</param>
        /// <param name="itemMoney">项目总金额</param>
        /// <returns></returns>
        public double GetAllSalary(double baseSalary, int year, double yearMoney, double itemMoney)
        {
            return baseSalary + year * yearMoney + itemMoney * 0.1;
        }
    }
}
